// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.rbchat.logic.chat_friend.utils;

import android.content.Context;

import com.x52im.rainbowchat.common.dto.cnst.UserProtocalsType;
import com.x52im.rbchat.network.im.SendDataHelper;

/**
 * 一对一好友实时语音聊天相关消息/指令的发送和解析方法。
 */
public class RealTimeVoiceMessageHelper
{
	/**
	 * 实时语音聊天：结束本次实时语音聊天 .
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoice$EndChatting_from$a(Context context
			, String to_user_id, String localUserUid)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT35_OF_REAL$TIME$VOICE_END$CHATTING);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天：结束本次实时语音聊天 .
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoice$EndChatting_from$a(String originalMsg)
	{
//		return originalMsg.substring(
//				MT30_OF_REAL$TIME$VOICE_END$CHATTING.length(), originalMsg.length());
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：请求实时语音聊天(发起方A) .
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendRealTimeVoiceRequest$Requestting_from$a(Context context
			, String to_user_id, String localUserUid, boolean forAnyChat, int local_user_id_anychat)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT31_OF_REAL$TIME$VOICE$REQUEST_REQUESTING$FROM$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：请求实时语音聊天(发起方A) .
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Requestting_from$a(String originalMsg)
	{
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：取消实时语音聊天请求(发起发A).
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoiceRequest$Abort_from$a(Context context
			, String to_user_id, String localUserUid)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT32_OF_REAL$TIME$VOICE$REQUEST_ABRORT$FROM$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：取消实时语音聊天请求(发起发A).
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Abort_from$a(String originalMsg)
	{
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：同意实时语音聊天请求(接收方B).
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoiceRequest$Accept_to$a(Context context
			, String to_user_id, String localUserUid, boolean forAnyChat, int local_user_id_anychat)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："子协议头+[数据传输对象JSON文本]
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT33_OF_REAL$TIME$VOICE$REQUEST_ACCEPT$TO$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：同意实时语音聊天请求(接收方B).
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Accept_to$a(String originalMsg)
	{
		return originalMsg;
	}
	
	/**
	 * 实时语音聊天呼叫中：拒绝实时语音聊天请求(接收方B).
	 * 
	 * @param context
	 * @param to_user_id 要接收指令的目标好友
	 * @return 0 表示指令发送成功，否则返回的是错误码
	 * @throws Exception
	 */
	public static int sendVideoAndVoiceRequest$Reject_to$a(Context context
			, String to_user_id, String localUserUid, boolean forAnyChat, int local_user_id_anychat)
	{
		// 消息格式是：“通知消息头+本地用户uid”
		// ，形如："__*#20#*__本地用户uid"
		return SendDataHelper.sendMessageImpl(context, to_user_id
				, localUserUid
				, true
				, UserProtocalsType.MT34_OF_REAL$TIME$VOICE$REQUEST_REJECT$TO$A);// 此消息需要质量保证
	}
	/**
	 * 解析实时语音聊天呼叫中：拒绝实时语音聊天请求(接收方B).
	 * 
	 * @param originalMsg 包含指点协议头和内容本身的原始消息文本
	 * @return 对方的用户uid
	 */
	public static String pareseRealTimeVoiceRequest$Reject_to$a(String originalMsg)
	{
		return originalMsg;
	}
}
